# Maintainer: Alexander F. Rødseth <xyproto@archlinux.org>
# Contributor: loqs
# Contributor: Mark E.A.
# Contributor: Gergely Imreh <imrehg@gmail.com>

pkgname=io
pkgver=2017.09.06
pkgrel=9
pkgdesc='IO programming language'
arch=(loong64 x86_64)
url='https://iolanguage.org/'
license=(BSD)
depends=(freeglut freetype2 libedit libevent libjpeg-turbo libpng libsndfile libtheora libtiff libxml2 libxmu lzo mariadb-libs pcre python sqlite util-linux yajl)
makedepends=(cmake git)
options=(!makeflags)
source=("git+https://github.com/stevedekorte/io#commit=b8a18fc199758ed09cd2f199a9bc821f6821072a" # tag: 2017.09.06
        'noexec.patch::https://github.com/IoLanguage/io/commit/5b88e9769c1d4629e9a4a01c78b57c0d80c7a70c.patch')
b2sums=('SKIP'
        'bf7bf212349a88d707ca99fff48dfc08b0b4fbdc91a64a090e53c388e161f210d42e1dff590c5cda022c0519f2469ad9be5d4788c226632ad3d516389782912d')

prepare() {
  cd $pkgname/libs/iovm/source
  sed -ri "s,20[0-9]+,$pkgver," IoVersion.h
  sed -i 's,sys/sysctl.h,linux/sysctl.h,g' IoSystem.c
}

build() {
  CFLAGS+=' -ffat-lto-objects'
  cmake \
    -B build \
    -D CMAKE_BUILD_TYPE=Release \
    -D CMAKE_INSTALL_PREFIX=/usr \
    -D CMAKE_SKIP_RPATH=1 \
    -S $pkgname

  # make is used instead of ninja, because ninja results in errors,
  # even with '-w dupbuild=warn' and/or -w 'phonycycle=warn'
  make -C build
}

package() {
  DESTDIR="$pkgdir" make -C build install

  # The dynamically linked io executable does not work, see FS#68674. The error is:
  # Relink `/usr/lib/libbasekit.so' with `/usr/lib/libm.so.6' for IFUNC symbol `ceil'
  # Use the statically linked executable instead.
  mv -f "$pkgdir/usr/bin/io_static" "$pkgdir/usr/bin/io"

  # In the next version of io, it's just $pkgname/LICENSE.txt
  install -Dm644 $pkgname/license/bsd_license.txt \
    "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
